using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DbfLocValue")]
	public class DbfLocValue : MonoClass
	{
		public List<Locale> m_locales => method_3<Class270<Locale>>("m_locales")?.method_25();

		public List<string> m_locValues => method_3<Class272>("m_locValues")?.method_25();

		public int m_locId => method_2<int>("m_locId");

		public int m_recordId => method_2<int>("m_recordId");

		public string m_recordColumn => method_4("m_recordColumn");

		public bool m_hideDebugInfo => method_2<bool>("m_hideDebugInfo");

		public DbfLocValue(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DbfLocValue(IntPtr address)
			: this(address, "DbfLocValue")
		{
		}

		public static string op_Implicit(DbfLocValue v)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "DbfLocValue", "op_Implicit", v);
		}

		public string GetString(bool defaultToLoadOrder)
		{
			return method_12("GetString", new Class276.Enum20[1] { Class276.Enum20.Boolean }, defaultToLoadOrder);
		}

		public string GetString(Locale loc, bool defaultToLoadOrder)
		{
			return method_12("GetString", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, loc, defaultToLoadOrder);
		}

		public void SetString(Locale loc, string value)
		{
			method_9("SetString", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String
			}, loc, value);
		}

		public void SetString(string value)
		{
			method_9("SetString", new Class276.Enum20[1] { Class276.Enum20.String }, value);
		}

		public void SetLocId(int locId)
		{
			method_8("SetLocId", locId);
		}

		public int GetLocId()
		{
			return method_11<int>("GetLocId", Array.Empty<object>());
		}

		public void SetDebugInfo(int recordId, string recordColumn)
		{
			method_8("SetDebugInfo", recordId, recordColumn);
		}

		public void StripUnusedLocales()
		{
			method_8("StripUnusedLocales");
		}
	}
}
